package com.ruoyi.iot.domain.entity;

import java.math.BigDecimal;
import java.time.LocalDateTime;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 阈值与权重配置表实体
 */
@Data
@Schema(description = "设备阈值与权重配置实体，对应阈值与权重配置表")
public class DeviceThresholdConfig {

    /** 主键ID */
    @Schema(description = "主键ID")
    private Long id;

    /** 设备编号，NULL 表示全局默认 */
    @Schema(description = "设备编号，NULL 表示全局默认")
    private String deviceId;

    /** 指标编码 */
    @Schema(description = "指标编码")
    private String metricCode;

    /** 正常区间下限 */
    @Schema(description = "正常区间下限")
    private BigDecimal baselineLow;

    /** 正常区间上限 */
    @Schema(description = "正常区间上限")
    private BigDecimal baselineHigh;

    /** 配置用途 */
    @Schema(description = "配置用途（如预警、告警等）")
    private String alarmLevel;

    /** 预警阈值 */
    @Schema(description = "预警阈值")
    private BigDecimal warnValue;

    /** 比较符 */
    @Schema(description = "比较符")
    private String comparator;

    /** 告警阈值 */
    @Schema(description = "告警阈值")
    private BigDecimal alarmValue;

    /** 评分权重 */
    @Schema(description = "评分权重")
    private BigDecimal scoreWeight;

    /** 评分公式标识 */
    @Schema(description = "评分公式标识")
    private String scoringFormula;

    /** 扩展参数（JSON 字符串） */
    @Schema(description = "扩展参数（JSON 字符串）")
    private String extraParams;

    /** 维护人 */
    @Schema(description = "维护人")
    private String updatedBy;

    /** 更新时间 */
    @Schema(description = "更新时间")
    private LocalDateTime updatedAt;
}

